/**
 * 模型存储类
 * 负责AI模型的保存和加载
 */
class ModelStorage {
    /**
     * 初始化存储系统
     */
    constructor() {
        this.storageKey = 'gameAIModel';  // localStorage的键名前缀
    }

    /**
     * 保存AI模型
     * @param {GameAI} ai - AI实例
     * @param {string} type - 保存类型（'latest'或'best'）
     * @returns {Promise<boolean>} 保存是否成功
     */
    async saveModel(ai, type = 'latest') {
        try {
            // 准备要保存的数据
            const aiData = {
                network: ai.network.toJSON(),
                epsilon: ai.epsilon,
                bestScore: ai.bestScore,
                trainingCount: ai.trainingCount
            };
            
            // 保存到localStorage
            localStorage.setItem(`${this.storageKey}_${type}`, JSON.stringify(aiData));
            console.log(`模型已保存: ${type}`);
            return true;
        } catch (error) {
            console.error('保存模型失败:', error);
            throw error;
        }
    }

    /**
     * 加载AI模型
     * @param {string} type - 加载类型（'latest'或'best'）
     * @returns {Promise<Object>} 加载的模型数据
     */
    async loadModel(type = 'latest') {
        try {
            // 从localStorage读取数据
            const data = localStorage.getItem(`${this.storageKey}_${type}`);
            if (!data) {
                throw new Error('没有找到保存的模型');
            }
            
            // 解析并返回数据
            const aiData = JSON.parse(data);
            console.log(`模型已加载: ${type}`);
            return aiData;
        } catch (error) {
            console.error('加载模型失败:', error);
            throw error;
        }
    }
} 